home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / src / X11 / xarchie-2.0.9 / xcutbuf.c < prev    next >
C/C++ Source or Header  |  1995-06-18  |  1KB  |  69 lines

  1. /*
  2.  * xcutbuf.c : Retrieve value of an X cut buffer
  3.  *
  4.  * George Ferguson, ferguson@cs.rochester.edu, 9 Feb 1993.
  5.  *
  6.  * Compile with local variant of:
  7.  *    cc -o xcutbuf -I/usr/staff/include xcutbuf.c -L/usr/staff/lib -lX11
  8.  *
  9.  */
  10.  
  11. #include <stdio.h>
  12. #include <X11/Xlib.h>
  13. extern char *getenv();
  14.  
  15. char *program;
  16.  
  17. static void
  18. usage()
  19. {
  20.     fprintf(stderr,"usage: %s [-display display] [0-7]\n",program);
  21.     exit(1);
  22. }
  23.  
  24. main(argc,argv)
  25. int argc;
  26. char *argv[];
  27. {
  28.  
  29.     Display *display;
  30.     char *dispname = NULL, *data;
  31.     int bufnum = 0, n;
  32.  
  33.     program = argv[0];
  34.     argc -= 1;
  35.     argv += 1;
  36.     while (argc > 0) {
  37.     if (strncmp(argv[0],"-d",2) == 0) {
  38.         if (argc == 1) {
  39.         usage();
  40.         } else {
  41.         dispname = argv[1];
  42.         argc -= 1;
  43.         argv += 1;
  44.         }
  45.     } else if (*argv[0] < '0' || *argv[0] > '7') {
  46.         usage();
  47.     } else {
  48.         bufnum = *argv[0] - '0';
  49.     }
  50.     argc -= 1;
  51.     argv += 1;
  52.     }
  53.     if ((display=XOpenDisplay(dispname)) == NULL) {
  54.     if (dispname == NULL)
  55.         dispname = getenv("DISPLAY");
  56.     if (dispname == NULL)
  57.         dispname = "(null)";
  58.     fprintf(stderr,"%s: couldn't open display \"%s\"\n",program,dispname);
  59.     exit(2);
  60.     }
  61.     data = XFetchBuffer(display,&n,bufnum);
  62.     if (data != NULL) {
  63.     printf(data);
  64.     XFree(data);
  65.     }
  66.     XCloseDisplay(display);
  67.     exit(0);
  68. }
  69.